package cn.doitedu.day03.demo

import java.sql.{DriverManager, PreparedStatement}

import cn.doitedu.day01.utils.SparkUtil
import cn.doitedu.day03.beans.Student
import com.alibaba.fastjson.JSON
import redis.clients.jedis.Jedis

/**
 * @Date 22.3.31
 * @Created by HANGGE
 * @Description
 */
object D02_数据入库_Redis {

  def main(args: Array[String]): Unit = {
    val sc = SparkUtil.getSc

    val rdd1 = sc.textFile("data/students.csv")
    // 待写入到MySQL中的数据信息
    val rdd2 = rdd1.map(line => {
      val arr = line.split(",")
      Student(arr(0).toInt, arr(1), arr(2).toInt, arr(3), arr(4).toDouble, arr(5))
    })

    rdd2.foreach(stu=>{
      val jedis = new Jedis("linux01", 6379)
      //val str = JSON.toJSONString(stu)
      jedis.set(stu.name , stu.toString)
      jedis.close()
    })


    rdd2.foreachPartition(iters=>{
      // 获取redis连接  一个分区获取一次
      val jedis = new Jedis("linux01", 6379)
      // 本地集合的方法   map也是不会触发迭代器
      iters.foreach(
       stu=>{
         jedis.set(stu.name ,stu.toString)
       }
      )
    })


    sc.stop()

  }

}
